package com.deng.framework.beans.factory;

import com.deng.framework.beans.BeansException;
import com.deng.framework.beans.factory.config.AutowireCapableBeanFactory;
import com.deng.framework.beans.factory.config.BeanDefinition;
import com.deng.framework.beans.factory.config.ConfigurableBeanFactory;

/**
 * 提供分析和修改Bean以及预先实例化的操作接口
 * 其继承了ConfigurableBeanFactory接口，可以对BeanPostProcessor(Bean的扩展)、BeanClassLoader(Bean的加载)进行一些操作
 */
public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {

    BeanDefinition getBeanDefinition(String beanName) throws BeansException;

    //提前实例化单例Bean对象
    void preInstantiateSingletons() throws BeansException;
}
